<?php

class coreValidateHelper extends helperBase {
	
	function alphanumerical($data) {
		return ctype_alnum($data->getValue());
	}
	
	function unique($data, $args, $vars) {
		if($vars['model']->get('first',array('where'=>array($vars['column'],'=',$data->getValue()))))
			return false;
		else
			return true;
	}
	
	function regex($data, $args) {
		$value = $data->getValue();
		if(!isset($value[0]))
			return true;
		if(!preg_match($args[1],$value,$match)&&$value!='')
			return false;
		if(strlen($match[0])==strlen($value))
			return true;
		return false;
	}
	
	function restrictChars($data, $args) {
		$value = $data->getValue();
		if(!isset($value[0]))
			return true;
		if(!preg_match('|['.$args[1].']+|',$value,$match)&&$value!='')
			return false;
		if(strlen($match[0])==strlen($value))
			return true;
		return false;
	}
	
	function between($value, $args) {
		if(strlen($value)<$args[1]||strlen($value)>$args[2])
			return false;
		return true;
	}
	
	function atMost($value, $args) {
		if(strlen($value)>$args[1])
			return false;
		return true;
	}
	
	function confirm(&$value, $args) {
		$confirm = $value['confirm'];
		$value = $value['key'];
		if($value!=$confirm)
			return false;
		return true;
	}
	
	function notEmpty($data) {
		if($data->getValue()==='') {
			return false;
		}
		return true;
	}

	function notNull($data) {
		if($data->getValue()===null) {
			return false;
		} else {
			return true;
		}
	}

	function mustHave($data, $args) {
		if(count($data->listChildren())<$args[1]) {
			return false;
		} else {
			return true;
		}
	}

	function isNot($data, $args) {
		if($data->getValue()==$args[1]) {
			return false;
		} else {
			return true;
		}
	}
}

?>
